# 调用zhipuAI库，使用input输入一个问题, 使用glm-4-flash模型输出一个回答补全对话，
# 将input和问题都显示在终端上，循环问答，直到输入/quit。
from zhipuai import ZhipuAI

# 设置API密钥
api_key = "a567d89b7d4f40eea9ae11316558a49e.qqLYnJSsBDYmfIW2"

# 创建ZhipuAI客户端
client = ZhipuAI(api_key=api_key)

# 设置模型名称
model_name = "glm-4-flash"

# 设置对话历史
history = []

# 循环问答
while True:
    # 输入问题
    question = input("你：")
    # 将问题添加到对话历史
    history.append({"role": "user", "content": question})
        # 判断是否退出
    if question.lower() == "/quit":
        break
    # 调用模型生成回答
    response = client.chat.completions.create(
        model=model_name,
        messages=history,
        stream=True
    )
    # 输出回答
    answer=[]
    print("AI：")
    for chunk in response:
        print(chunk.choices[0].delta.content, end="", flush=True)
        answer.append(chunk.choices[0].delta.content)
    print("\n")
    # 将回答添加到对话历史
    history.append({"role": "assistant", "content": chunk.choices[0].delta.content})
    # history.append({"role": "assistant", "content": answer})

    
# 输出对话历史
print("对话历史：")
for message in history:
    print(message["role"] + "：" + message["content"])
# 结束程序
print("程序结束")
